#!/bin/bash

_pivpn() {
  local cur prev opts
  COMPREPLY=()
  cur="${COMP_WORDS[COMP_CWORD]}"
  prev="${COMP_WORDS[COMP_CWORD - 1]}"
  dashopts="-a -c -d -l -r -h -u -up -bk"
  opts="debug add clients list revoke uninstall help update backup"

  if [[ "${#COMP_WORDS[@]}" -eq 2 ]]; then
    if [[ "${cur}" == -* ]]; then
      COMPREPLY=("$(compgen -W "${dashopts}" -- "${cur}")")
    else
      COMPREPLY=("$(compgen -W "${opts}" -- "${cur}")")
    fi
  elif [[ ("${prev}" == "add" || "${prev}" == "-a") ]] \
    && [[ "${#COMP_WORDS[@]}" -eq 3 ]]; then
    COMPREPLY=("$(compgen -W "nopass" -- "${cur}")")
  fi

  return 0
}

complete -F _pivpn pivpn
